/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.deployment.entidade.tramite;

import br.com.deployment.entidade.acesso.Usuario;
import br.com.deployment.entidade.protocolo.Protocolo;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;

/**
 *
 * @author roniere
 */
@Entity
public class Tramite  implements Serializable {
    
    @Id
    @SequenceGenerator(name = "seq_tramite", sequenceName = "seq_tramite", allocationSize=1 )
    @GeneratedValue(generator = "seq_tramite", strategy = GenerationType.SEQUENCE)
    private Long id;
    
    @Temporal(javax.persistence.TemporalType.TIMESTAMP)
    private Date dataCad;
    
    @Column
    private String assunto;
    
    @Column
    private String despacho;
    
    @ManyToOne
    private Protocolo protocolo;
    
    @Temporal(javax.persistence.TemporalType.TIMESTAMP)
    private Date dataRecebe;
    
    //Recebido ? true : false
    private Boolean status;
    
    @Temporal(javax.persistence.TemporalType.TIMESTAMP)
    private Date prazoConclusao;    
    
    @OneToOne
    private Usuario usrRecebe;
    
    @OneToOne
    private Secao remetente;
    
    @OneToOne
    private Usuario usrRemetente;
    
    @OneToOne
    private Secao destino;
    
    @OneToOne
    private Usuario usrDestino;
    
    @OneToOne
    private Situacao situacao;
    
    

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Boolean getStatus() {
        return status;
    }

    public void setStatus(Boolean status) {
        this.status = status;
    }

    
    public Protocolo getProtocolo() {
        return protocolo;
    }

    public void setProtocolo(Protocolo protocolo) {
        this.protocolo = protocolo;
    }
    
    
    public String getAssunto() {
        return assunto;
    }

    public void setAssunto(String assunto) {
        this.assunto = assunto;
    }

    public Date getDataCad() {
        return dataCad;
    }

    public void setDataCad(Date dataCad) {
        this.dataCad = dataCad;
    }

    public Date getDataRecebe() {
        return dataRecebe;
    }

    public void setDataRecebe(Date dataRecebe) {
        this.dataRecebe = dataRecebe;
    }

    public String getDespacho() {
        return despacho;
    }

    public void setDespacho(String despacho) {
        this.despacho = despacho;
    }

    public Secao getDestino() {
        return destino;
    }

    public void setDestino(Secao destino) {
        this.destino = destino;
    }

    public Date getPrazoConclusao() {
        return prazoConclusao;
    }

    public void setPrazoConclusao(Date prazoConclusao) {
        this.prazoConclusao = prazoConclusao;
    }

    public Secao getRemetente() {
        return remetente;
    }

    public void setRemetente(Secao remetente) {
        this.remetente = remetente;
    }

    public Situacao getSituacao() {
        return situacao;
    }

    public void setSituacao(Situacao situacao) {
        this.situacao = situacao;
    }

    public Usuario getUsrDestino() {
        return usrDestino;
    }

    public void setUsrDestino(Usuario usrDestino) {
        this.usrDestino = usrDestino;
    }

    public Usuario getUsrRecebe() {
        return usrRecebe;
    }

    public void setUsrRecebe(Usuario usrRecebe) {
        this.usrRecebe = usrRecebe;
    }

    public Usuario getUsrRemetente() {
        return usrRemetente;
    }

    public void setUsrRemetente(Usuario usrRemetente) {
        this.usrRemetente = usrRemetente;
    }

    @Override
    public String toString() {
        return "Tramite{" + "id=" + id + ", protocolo=" + protocolo + ", dataCad=" + dataCad + ", assunto=" + assunto + ", prazoConclusao=" + prazoConclusao + ", remetente=" + remetente + ", usrRemetente=" + usrRemetente + ", destino=" + destino + ", usrDestino=" + usrDestino + ", situacao=" + situacao + ", despacho=" + despacho + ", usrRecebe=" + usrRecebe + ", dataRecebe=" + dataRecebe + '}';
    }
    
}
